<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guideline: 业务用例实现</title>
<meta name="uma.type" content="Guideline">
<meta name="uma.name" content="business_use-case_realization">
<meta name="uma.presentationName" content="业务用例实现">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="1.0660567082472948E-304"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Guideline: 业务用例实现</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/guidance.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">业务用例实现是实现业务用例的模型元素的协作。本指南说明如何开发业务用例实现。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup_bm/tasks/bm_uc_analysis_60F4BCAE.html" guid="_T1XJMBpXEdqUwb9RAn2tTA">业务用例分析</a>
</li>
<li>
<a href="./../../../rup_bm/workproducts/rup_business_use_case_realization_55CAF00D.html" guid="{47F095EB-E651-4A34-B75B-BACE38ED90C7}">业务用例实现</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a><a key="业务用例实现（business use-case realization）" text="展示业务用例关系" name="XE_business_use-case_realization__presenting_business_use-case_relationships" id="XE_business_use-case_realization__presenting_business_use-case_relationships" class="index"></a> 
<h3>
    <a id="Explanation" name="Explanation">说明</a>
</h3>
<p>
    业务用例模型从业务参与者和业务用例（例如，与客户和业务流程对应）的角度，对业务进行描述。业务用例模型包含确定要执行的<b>工作</b>的工作流程描述。在业务分析模型中，特别是业务用例实现中，描述了每个业务用例中的工作<b>如何</b>进行。
</p>
<p>
    一组执行业务用例工作的业务系统和业务工作者，连同他们作为流程的一部分而访问和操作的业务实体，以及对于交互的描述，一起被称为业务用例实现。同一个类（业务系统、业务工作者或业务实体）的实例可以参与多个不同的业务用例实现，这反映了同一类资源在不同时候会参与不同流程。
</p>
<p>
    业务系统形成包含业务工作者和业务实体（以及其他可能的业务系统）的分层结构，因此您可能期望业务系统仅与其他业务系统交互。实际上，在实现某个业务用例时，并没有禁止您显示业务系统和业务工作者之间的交互（例如，在您想深入到特定业务系统中，并展示其业务工作者、他们之间的交互以及与外部业务系统之间的交互时）。但是，如果您决定业务系统应在业务中提供明确定义的边界和接口，则不能在实现业务用例时以这种方式展示它的内容。而这时将派生出该业务系统的<em>下级</em>业务用例（请参阅<a class="elementLinkWithType" href="./../../../rup_bm/guidances/concepts/modeling_large_organizations_DB7556B6.html" guid="1.268342166757605E-304">Concept: 为大型组织建模</a>），并在下一级描述它们是如何通过业务系统内部资源的协作实现的。
</p>
<h3>
    <a id="Using Activity Diagrams" name="Using Activity Diagrams">使用活动图</a>
</h3>
<p>
    记录业务用例实现的第一个选择是绘制活动图，其中泳道（或分区）代表参与的业务系统或业务工作者。对每个业务用例实现而言，可能有一个或多个活动图来阐释工作流程。常用的组织方法是，绘制一个没有泳道的全工作流程概览图，其中显示高层次的活动。然后，对于每个这样的活动，都有一个更详细的活动图，该图显示业务工作者级别的泳道和任务。出于可读性原因，应使每张图的大小与纸张匹配。
</p>
<p>
    另请参阅<a class="elementLinkWithUserText" href="./../../../rup_bm/guidances/guidelines/diagrams_in_the_business_analysis_model_F0F7B759.html" guid="2.967860873569252E-305">技术：业务分析模型中的活动图</a>。
</p>
<h3>
    <a id="Using Communication and Sequence Diagrams" name="Using Communication and Sequence Diagrams">使用通信图和时序图</a>
</h3>
<p>
    对于每个业务用例实现，可以有一个或多个交互图，这些图描绘了参与该业务用例实现的业务系统、业务工作者和业务实体以及他们之间的交互。有两种类型的交互图：时序图和通信图。二者传达相似的信息，但以不同的方式显示信息：
</p>
<ul>
    <li>
        时序图（如它们的名称所暗示的）显示事件的明确顺序，对于较复杂的场景而言，它比活动图更好。
    </li>
    <li>
        通信图显示对象间的通信链接和消息，它更适合理解对给定对象的所有影响。
    </li>
    <li>
        若备用的工作流程很少，但是涉及的业务实体很多，那么与活动图相比，对于显示工作流程的实现，交互图经常是一个更好的选择。
    </li>
</ul>
<p>
    请参阅<a class="elementLinkWithUserText" href="./../../../rup_bm/guidances/guidelines/diagrams_in_the_business_analysis_model_F0F7B759.html" guid="2.967860873569252E-305">技术：业务分析模型中的时序图</a>和<a class="elementLinkWithUserText" href="./../../../rup_bm/guidances/guidelines/diagrams_in_the_business_analysis_model_F0F7B759.html" guid="2.967860873569252E-305">技术：业务分析模型中的通信图</a>以获取更多信息。
</p>
<h3>
    <a id="Using Class Diagrams" name="Using Class Diagrams">使用类图</a>
</h3>
<p>
    对于每个业务用例实现，可以有一个或多个组件图或类图，这些图描绘了参与该业务用例实现的业务系统、业务工作者和业务实体。 在协调参与多个业务用例实现的业务系统、业务工作者或业务实体的所有需求时，这种图很有帮助。请参阅<a class="elementLinkWithUserText" href="./../../../rup_bm/guidances/guidelines/diagrams_in_the_business_analysis_model_F0F7B759.html" guid="2.967860873569252E-305">技术：业务分析模型中的类图</a>。
</p>
<h3>
    <a id="How to Map Use-Case Relationships" name="How to Map Use-Case Relationships">如何映射用例关系</a>
</h3>
<p>
    业务用例之间的关系与业务分析模型中的关系一致。通过观察业务中发生的事件，您可以了解如何将业务用例关系映射到业务用例实现的对象之间的链接。关于用例关系的更多信息，请参阅<a class="elementLinkWithType" href="./../../../rup_bm/guidances/guidelines/business_use-case_model_1C8E857B.html" guid="3.9905535055726305E-306">Guideline: 业务用例模型</a>。
</p>
<p>
    假设一个业务用例（基本用例）包含另一个业务用例（包含用例）。在某个给定的时刻，员工将需要停止遵循基本用例的指示信息，转而遵循在各自业务用例实现的文档中描述的包含用例的指示信息。将发生以下情况：
</p>
<ul>
    <li>
        根据基本用例，在流程的执行中达到某个可确定的状态 － 例如，某个业务工作者已完成一定的任务。
    </li>
    <li>
        根据包含用例的实现，准备开始工作的某个人通知状态发生改变。或者是此人观察到某些现象，或者他也是由包含用例中的其他人告知。
    </li>
</ul>
<p>
    基本用例实现中的业务工作者与包含用例实现中的业务工作者进行交互，告知后者正在进行的工作。最自然的建模方法是：
</p>
<ul>
    <li>
        对于含有包含用例的每个基本用例，包含用例实现都有一个对象。每个源于基本用例的对象都含有至业务工作者个体（该个体启动包含用例中的工作）的链接。
    </li>
</ul>
<p align="center">
    <img height="160" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/bucr1.gif" width="455" />
</p>
<p class="picturetext">
    基本业务用例实现中的每个业务工作者都需要至根据包含业务用例启动工作的业务工作者的链接。
</p>
<ul>
    <li>
        基本业务用例的实现不含代表包含用例的对象。
    </li>
</ul>
<p>
    在某个业务用例被另一个业务用例扩展的情况下，您可得出相似的解决方案。在扩展实现中，您将有一个代表基本用例的对象，而该对象含有一个链接，可链接至启动扩展内描述的工作的对象。
</p>
<p align="center">
    <img height="167" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/bucr2.gif" width="328" />
</p>
<p class="picturetext">
    基本业务用例中的每个业务工作者都需要至启动扩展的业务工作者的链接。
</p>
<p>
    对用例泛化关系而言，解决方案再次相似。在父用例实现中，您将看到代表子用例的对象。
</p>
<p align="center">
    <img height="177" alt="附带文本中描述的图。" src="./../../../rup_bm/guidances/guidelines/resources/bucr3.gif" width="439" />
</p>
<p class="picturetext">
    在父用例实现中存在代表子用例的业务工作者。
</p>
<p>
    用例关系有不同的解释。谈及它们在业务分析模型中的表示时，在为什么启动在包含、扩展或父业务用例中定义的工作以及业务工作者如何解释信息上存在差异。业务用例实现中的对象之间进行交互的方式将遵循所有案例中的相同结构。
</p>
<h3>
    <a key="业务用例实现（business use-case realization）" text="好的业务用例实现的特征" name="XE_business_use-case_realization__characteristics_of_a_good" id="XE_business_use-case_realization__characteristics_of_a_good" class="index"></a><a id="Characteristics of Good Business Use-Case Realizations" name="Characteristics of Good Business Use-Case Realizations">优秀业务用例实现的特征</a>
</h3>
<ul>
    <li>
        参与的业务系统、业务工作者和业务实体执行业务用例工作流程，包括所有备选和可选的子流程。
    </li>
    <li>
        工作流程描述涵盖了描述的所有任务。
    </li>
    <li>
        业务系统、业务工作者和业务实体具有执行业务用例工作流程所需的所有关系。
    </li>
    <li>
        至少有一个业务系统或业务工作者处理业务参与者与业务之间的交互。
    </li>
</ul><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
